package com.lanou3g.code0423;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/**
 * Created by dllo on 18/4/23.
 */
public class ReceiveClient {
    public static void main(String[] args) {
        try {
            //UDP不适合传递大数据,适合小而频繁的数据,传递 容易丢失数据
            // UDP协议  使用DatagramSocket
            //ds 对象 可以用来 接收 /发送数据
            //准备 接收数据的时候,需要在构造方法中
            // 指定一个固定端口号
            //如果没有指定端口号,那么就会随机绑定到 一个端口上
            //这时 发送方就会不知道向哪个端口发数据
            DatagramSocket ds = new DatagramSocket(7788);
            byte[] buf = new byte[1024];
            DatagramPacket packet = new DatagramPacket(buf, buf.length);

            ds.receive(packet);
            String data = new String(packet.getData(), 0, packet.getLength());
            System.out.println(data);

            byte[] s = "我收到了".getBytes();
            System.out.println(packet.getAddress());
            System.out.println(packet.getPort());

            DatagramPacket re=new DatagramPacket(s,s.length,packet.getAddress(),packet.getPort());
            ds.send(re);//发送数据给小蓝人


            ds.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
